<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="copyright" content=
"Copyright (c) IBM Corporation and others 2000, 2017. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css" />
<title>Excluding warnings using @SuppressWarnings</title>
<link rel="stylesheet" type="text/css" href="../book.css" />
</head>
<body>
<a name="t_suppress_warnings"></a>
<h1>Excluding warnings using @SuppressWarnings</h1>
<p>Since Java 5.0, you can disable compilation warnings relative to a subset of a compilation unit using the <code>java.lang.SuppressWarning</code> annotation.</p>

<pre>
 @SuppressWarning("unused") public void foo() {
  String s;
 }
</pre>
<p>Without the annotation, the compiler would complain that the local variable <code>s</code> is never used. With the annotation, the compiler silently ignores this warning locally to the
<code>foo</code> method. This enables to keep the warnings in other locations of the same compilation unit or the same project.</p>
<p>The list of tokens that can be used inside a <code>SuppressWarnings</code> annotation is:</p>

<table border="1" cellspacing="0" cellpadding="5" width="100%" summary="SuppressWarnings tokens">
	<tr>
		<th>
		<p>Token</p>
		</th>
		<th>
		<p>Description</p>
		</th>
		<th>
		<p>Suppressed compiler option(s)</p>
		</th>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">all</span></p>
		</td>
		<td valign="top">
		<p>to suppress all warnings</p>
		</td>
		<td valign="top">
		<p>All compiler options</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">boxing</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to boxing/unboxing operations</p>
		</td>
		<td valign="top">
		<p>Boxing and unboxing conversions</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">cast</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to cast operations</p>
		</td>
		<td valign="top">
		<p>Unnecessary cast or 'instanceof' operation</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">dep-ann</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to deprecated annotation</p>
		</td>
		<td valign="top">
		<p>Missing '@Deprecated' annotation</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">deprecation</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to deprecation</p>
		</td>
		<td valign="top">
		<p>Deprecated API</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">fallthrough</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to missing breaks in switch statements</p>
		</td>
		<td valign="top">
		<p>'switch' case fall-through</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">finally</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to finally block that don't return</p>
		</td>
		<td valign="top">
		<p>'finally' does not complete normally</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">hiding</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to locals that hide variable</p>
		</td>
		<td valign="top">
		<p>Local variable declaration hides another field or variable</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">incomplete-switch</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to missing entries in a switch statement (enum case)</p>
		</td>
		<td valign="top">
		<p>Incomplete 'switch' cases on enum</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">javadoc</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to javadoc warnings</p>
		</td>
		<td valign="top">
		<p>All options in <a href="../reference/preferences/java/compiler/ref-preferences-javadoc.htm">Java Compiler Javadoc Preferences</a></p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">nls</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to non-nls string literals</p>
		</td>
		<td valign="top">
		<p>Non-externalized strings</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">null</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to null analysis</p>
		</td>
		<td valign="top">
		<p>All options in <a href="../reference/preferences/java/compiler/ref-preferences-errors-warnings.htm#null_analysis">Java Compile Errors/Warnings Preferences for Null Analysis</a></p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">rawtypes</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to usage of raw types</p>
		</td>
		<td valign="top">
		<p>Usage of a raw type</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">resource</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to usage of resources of type Closeable</p>
		</td>
		<td valign="top">
		<p>Resource leak<br/>
		Potential resource leak<br/>
		Resource not managed via try-with-resource</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">restriction</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to usage of discouraged or forbidden references</p>
		</td>
		<td valign="top">
		<p>Forbidden reference (access rules)<br/>
		Discouraged reference (access rules)</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">removal</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to usage of terminally deprecated API</p>
		</td>
		<td valign="top">
		<p>Forbidden reference (access rules)<br/>
		Discouraged reference (access rules)</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">serial</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to missing serialVersionUID field for a serializable class</p>
		</td>
		<td valign="top">
		<p>Serializable class without serialVersionUID</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">static-access</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to incorrect static access</p>
		</td>
		<td valign="top">
		<p>Non-static access to a static member<br/>
		Indirect access to a static member</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">static-method</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to methods that could be declared as static</p>
		</td>
		<td valign="top">
		<p>Method can be static<br/>
		Method can potentially be static</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">super</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to overriding a method without super invocations</p>
		</td>
		<td valign="top">
		<p></p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">synthetic-access</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to unoptimized access from inner classes</p>
		</td>
		<td valign="top">
		<p></p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">sync-override</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings because of missing synchronize when overriding a synchronized method</p>
		</td>
		<td valign="top">
		<p>Missing synchronized modifier on inherited method</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">unchecked</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to unchecked operations</p>
		</td>
		<td valign="top">
		<p>Unchecked generic type operation</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">unqualified-field-access</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to field access unqualified</p>
		</td>
		<td valign="top">
		<p>Unqualified access to instance field</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">unlikely-arg-type</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to unlikely argument types</p>
		</td>
		<td valign="top">
		<p>Unqualified access to instance field</p>
		</td>
	</tr>
	<tr>
		<td valign="top">
		<p><span class="token">unused</span></p>
		</td>
		<td valign="top">
		<p>to suppress warnings relative to unused code and dead code</p>
		</td>
		<td valign="top">
		<p>Dead code<br/>
		Unused object allocation<br/>
		Value of local variable is not used<br/>
		Value of method parameter is not used<br/>
		Value of exception parameter is not used<br/>
		Unused type parameter<br/>
		Unused import<br/>
		Unused private member<br/>
		Unused 'break' or 'continue' label
		</p>
		</td>
	</tr>
</table>

    <h3 class="related">Related references</h3>
      <a href="../reference/preferences/java/compiler/ref-preferences-errors-warnings.htm#annotations">Java Compile Errors/Warnings Preferences</a>
</body>
</html>
